package com.uobgroup.ews.uam.core.dao;

import java.util.List;

import com.uobgroup.ews.uam.core.domain.Profile;
import com.uobgroup.ews.uam.core.domain.Reference;
import com.uobgroup.ews.uam.core.domain.Segment;
import com.uobgroup.ews.uam.core.domain.UAMRole;


public interface ProfileDao extends GenericDao<Profile> {
   public long count();

   public List<Profile> findAll(int firstResult, int maxResults);
   
   public List<Profile> findProfilesByUAMRole(UAMRole uamRole);
   
   /**
    * Check whether a profile was assigned to a user 
    * @author ndduy
    * @param id
    * @return {@link Boolean}
    */
   public boolean isProfileInUse(Long id);
   
   public List<Profile> findAdminRole();
   public List<Profile> findNonAdminRole();
   public List<Profile> getProfileLstContainSegment(Segment seg);
   /**
    * @author dongn
    */
   public long countProfilesThatHasSegmentReference(Reference segment);
}
